package org.web.clientlistmanager.server.domain.query;

import java.util.Date;
import java.util.List;
import lombok.Getter;
import lombok.Setter;
import org.web.base.domain.QueryBase;

@Setter
@Getter
public class QueryClientTypeList extends QueryBase {


	/**
	 * 根据 'clientTypeListId' 精确查询, 'clientTypeListId' 表示主键，[client_type_list]表的主键.
	 */
	private Integer clientTypeListId;

	/**
	 * 设置 'clientTypeListId' 列表查询, 'clientTypeListId' 表示主键，[client_type_list]表的主键.
	 */
	private List < Integer > clientTypeListIdList;

	/**
	 * 根据 'processUuid' 精确查询, 'processUuid' 表示进程标识，客户端进程标识，客户端启动时，用UUID构建。冗余【client_process】中的【process_uuid】。【client_process】与【client_type_list】基于【processUuid】做关联。
	 */
	private String processUuid;

	/**
	 * 设置 'processUuid' 列表查询, 'processUuid' 表示进程标识，客户端进程标识，客户端启动时，用UUID构建。冗余【client_process】中的【process_uuid】。【client_process】与【client_type_list】基于【processUuid】做关联。
	 */
	private List < String > processUuidList;

	/**
	 * 根据 'clientServiceName' 精确查询, 'clientServiceName' 表示客户端微服务名称，嵌入的微服务名称，即传统意义上的微服务名称，许可证也是通过微服务进行管理业务域资源的。对于业务业务域的启动配置字段[XXX]。也是许可定义的微服务名称。来源于客户端配置参数，由客户端注册时提供。冗余设计，冗余【client_process】中的【client_service_name】
	 */
	private String clientServiceName;

	/**
	 * 设置 'clientServiceName' 列表查询, 'clientServiceName' 表示客户端微服务名称，嵌入的微服务名称，即传统意义上的微服务名称，许可证也是通过微服务进行管理业务域资源的。对于业务业务域的启动配置字段[XXX]。也是许可定义的微服务名称。来源于客户端配置参数，由客户端注册时提供。冗余设计，冗余【client_process】中的【client_service_name】
	 */
	private List < String > clientServiceNameList;

	/**
	 * 根据 'clientAddress' 精确查询, 'clientAddress' 表示运行实例IP，微服务运行的服务IP, 客户端可被对外访问的IP地址。需要考虑对IPV6的支持，以及未来容器场景下的IP影响。优先来源于客户端配置参数，如果没有配置，则基于JDK默认获取IP处理，由客户端注册时提供。冗余设计，冗余【client_process】中的【client_address】
	 */
	private String clientAddress;

	/**
	 * 设置 'clientAddress' 列表查询, 'clientAddress' 表示运行实例IP，微服务运行的服务IP, 客户端可被对外访问的IP地址。需要考虑对IPV6的支持，以及未来容器场景下的IP影响。优先来源于客户端配置参数，如果没有配置，则基于JDK默认获取IP处理，由客户端注册时提供。冗余设计，冗余【client_process】中的【client_address】
	 */
	private List < String > clientAddressList;

	/**
	 * 根据 'typeName' 精确查询, 'typeName' 表示客户端类型名称，定义客户端功能类型，例如数据库客户端、redis客户端等。由客户端启动注册时提供。
	 */
	private String typeName;

	/**
	 * 设置 'typeName' 列表查询, 'typeName' 表示客户端类型名称，定义客户端功能类型，例如数据库客户端、redis客户端等。由客户端启动注册时提供。
	 */
	private List < String > typeNameList;

	/**
	 * 根据 'typeVersion' 精确查询, 'typeVersion' 表示客户端类型，指定客户端类型，默认值1。由客户端启动注册时提供。
	 */
	private String typeVersion;

	/**
	 * 设置 'typeVersion' 列表查询, 'typeVersion' 表示客户端类型，指定客户端类型，默认值1。由客户端启动注册时提供。
	 */
	private List < String > typeVersionList;

	/**
	 * 根据 'typeSide' 精确查询, 'typeSide' 表示端标记，server表示服务端，client表示客户端，默认是【client】，不指定则为【client】。由客户端启动注册时提供。
	 */
	private String typeSide;

	/**
	 * 设置 'typeSide' 列表查询, 'typeSide' 表示端标记，server表示服务端，client表示客户端，默认是【client】，不指定则为【client】。由客户端启动注册时提供。
	 */
	private List < String > typeSideList;

	/**
	 * 根据 'typeServerSideAddress' 精确查询, 'typeServerSideAddress' 表示服务端地址，微服务做为组件使用方，是客户端，记录服务端的地址。由客户端启动注册时提供。如果涉及一组IP，且是IPV6，需要考虑其长度限制，当前设定的长度限制为500。如果不指定，后端默认补充默认值 【Default】。
	 */
	private String typeServerSideAddress;

	/**
	 * 设置 'typeServerSideAddress' 列表查询, 'typeServerSideAddress' 表示服务端地址，微服务做为组件使用方，是客户端，记录服务端的地址。由客户端启动注册时提供。如果涉及一组IP，且是IPV6，需要考虑其长度限制，当前设定的长度限制为500。如果不指定，后端默认补充默认值 【Default】。
	 */
	private List < String > typeServerSideAddressList;

	/**
	 * 设置大于 'createTime' 查询, 'createTime' 表示创建时间，用于记录创建时间，该记录，后面不会再次被修改。
	 */
	private Date moreThanCreateTime;

	/**
	 * 设置小于 'createTime' 查询, 'createTime' 表示创建时间，用于记录创建时间，该记录，后面不会再次被修改。
	 */
	private Date lessThanCreateTime;

	/**
	 * 设置大于等于 'createTime' 查询, 'createTime' 表示创建时间，用于记录创建时间，该记录，后面不会再次被修改。
	 */
	private Date equalAndMoreThanCreateTime;

	/**
	 * 设置小于等于 'createTime' 查询, 'createTime' 表示创建时间，用于记录创建时间，该记录，后面不会再次被修改。
	 */
	private Date equalAndLessThanCreateTime;

	/**
	 * 设置大于 'updateTime' 查询, 'updateTime' 表示修改时间，用于记录修改时间，每次记录发生变更，都会变化。
	 */
	private Date moreThanUpdateTime;

	/**
	 * 设置小于 'updateTime' 查询, 'updateTime' 表示修改时间，用于记录修改时间，每次记录发生变更，都会变化。
	 */
	private Date lessThanUpdateTime;

	/**
	 * 设置大于等于 'updateTime' 查询, 'updateTime' 表示修改时间，用于记录修改时间，每次记录发生变更，都会变化。
	 */
	private Date equalAndMoreThanUpdateTime;

	/**
	 * 设置小于等于 'updateTime' 查询, 'updateTime' 表示修改时间，用于记录修改时间，每次记录发生变更，都会变化。
	 */
	private Date equalAndLessThanUpdateTime;

	/**
	 * 根据 'isDelete' 精确查询, 'isDelete' 表示删除，记录是否逻辑删除，Y表示逻辑删除，N表示没有删除。
	 */
	private String isDelete;

}
